package tests;

import utilitarios.DireccionIzquierda;
import utilitarios.PuntoXY;
import junit.framework.TestCase;
import modelo.*;

public class PruebasCuartel extends TestCase {
	
	public void testSiCuartelSeDestruyeSuDefensorPierdeJuego() {
		
		// ARRANGE
		//
		// DEFENSOR             CUARTEL    <---     ENEMIGO
		Escenario escenario = new Escenario (300, 300);
		
		TanqueAlgo defensor = new TanqueAlgo(escenario, new PuntoXY(15, 30));
		Cuartel cuartel = new Cuartel(escenario, new PuntoXY(45, 30), defensor);
		TanqueAlgo enemigo = new TanqueAlgo(escenario, new PuntoXY(100, 30));
		enemigo.girar(new DireccionIzquierda());
		
		escenario.agregarObjeto(defensor);
		escenario.agregarObjeto(cuartel);
		escenario.agregarObjeto(enemigo);
	
		// ACT
		// Destruimos el cuartel: el defensor pierde el juego
		for (int i = 1; i < 100; i++) {
			enemigo.disparara(); //Esto va adentro del loop porque el AlgoTank no dispara por si solo
			escenario.vivir();
		}
		
		assertEquals(0.0, cuartel.getResistencia());
		assertEquals(true, defensor.haPerdido());
		
		
	}

}
